class code4 {
    public int mySqrt(int x) {
        //算数平方根
        //本题也存在二段性 +找右边界
        //边界情况
        if(x==0) return 0;
        long left=0,right =(long)x;
        while(left<right) {
            long mid = left +(right-left+1)/2;
            if(mid*mid<=x) left = mid;
            else right = mid-1;

        }
        return (int) left;
    }
}